Skip to content

feat: add maintainer drift detection feature#382

Open
ahmadqasembader wants to merge 2 commits intocncf:mainfrom
ahmadqasembader:feat/maintainers-drift-detection
Open

feat: add maintainer drift detection feature#382
ahmadqasembader wants to merge 2 commits intocncf:mainfrom
ahmadqasembader:feat/maintainers-drift-detection

Conversation

@ahmadqasembader
Copy link
Copy Markdown
Contributor

I introduced a maintainer-list drift detection. It compares the org repos governance files against the maintainers.yml file in .project, the detection works on every push or PR, in this case, if a drift is detected, a warning will be issued.

The second part is a scheduled GitHub Actions that runs every 1st of the month, which tries to validate the maintainers again and open a PR if any drift was detected

Signed-off-by: ahmadqasembader <ahmadbader245@gmail.com>
@ahmadqasembader ahmadqasembader requested a review from jeefy April 28, 2026 14:06
@ahmadqasembader ahmadqasembader self-assigned this Apr 28, 2026
@github-actions github-actions Bot added needs-triage Indicates an issue or PR that has not been triaged yet (has a 'triage/foo' label applied) needs-kind Indicates an issue or PR that is missing an issue type or kind (a kind/foo label) help wanted labels Apr 28, 2026
@jeefy
Copy link
Copy Markdown
Member

jeefy commented Apr 28, 2026

This is a more complicated feature. Maintainers are considered people who "speak for the project" and are designated through a project's governance model. Drift through PRs isn't a correct method to do this.

Instead, one idea was to ping projects if a maintainer.yaml hasn't been updated in six months (via an issue) asking "is this still up to date? Also (if applicable) we see these $x people have been contributing heavily over the last six months and these $y people haven't touched anything in GitHub in the last six months"

@jeefy jeefy removed help wanted needs-triage Indicates an issue or PR that has not been triaged yet (has a 'triage/foo' label applied) needs-kind Indicates an issue or PR that is missing an issue type or kind (a kind/foo label) labels Apr 28, 2026
@github-actions github-actions Bot added needs-triage Indicates an issue or PR that has not been triaged yet (has a 'triage/foo' label applied) needs-kind Indicates an issue or PR that is missing an issue type or kind (a kind/foo label) help wanted labels Apr 28, 2026
Signed-off-by: ahmadqasembader <ahmadbader245@gmail.com>
@ahmadqasembader
Copy link
Copy Markdown
Contributor Author

ahmadqasembader commented Apr 29, 2026

@jeefy, the drift detector has been refactored and introduced a health-check-and-report feature as suggested.

The scheduled workflow will check the maintainers.yml and whether it has not been edited for the last 6 months.

If yes, we will create an issue and tag the first 3 owners or the top 3 contributors of the Org.

An example of the Issue that will be created:

Maintainer List Health Check — kubernetes

Hi X 👋

maintainers.yaml has not been updated in 194 days (threshold: 180 days).
Please confirm the list below still reflects your project's governance model.

🕒 Checked: 2026-04-29 08:00 UTC
📅 Activity window: last 6 months

Current Maintainers — Activity

Maintainer Commits Merged PRs Active repos Last seen
@thockin 312 71 kubernetes, api, apimachinery +9 more 2026-04-29
@liggitt 278 64 kubernetes, apiserver, client-go +4 more 2026-04-28
@derekwaynecarr 143 38 kubernetes, component-base, api 2026-04-22
@dims 89 22 kubernetes, apimachinery, api 2026-03-15
@smarterclayton 14 3 apiserver 2026-01-20
@lavalamp 3 0 kubernetes 2025-11-04
@wojtek-t 0 0

Active Contributors Not Yet in Maintainer List

These contributors have been active across project repos in the last 6 months but do not appear in maintainers.yaml. Consider whether any should be nominated per your governance process.

Handle Commits Merged PRs Active repos
@bentheelder 104 28 kubernetes, client-go, api +1 more
@pohly 91 21 apiserver, kubernetes
@jpbetz 77 18 apiserver, apimachinery
@alexzielenski 55 14 apiserver, api
@gnufied 43 9 kubernetes, component-base

No changes are required automatically. Please update maintainers.yaml if this no longer reflects your governance, or close this issue to confirm it is still accurate. This issue was opened by cncf/automation maintainer health-check tooling.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-kind Indicates an issue or PR that is missing an issue type or kind (a kind/foo label) needs-triage Indicates an issue or PR that has not been triaged yet (has a 'triage/foo' label applied)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants